{"cells":[{"metadata":{"trusted":true},"cell_type":"code","source":"import random\n\nvoisins = [[1, 2, 3, 4, 5],\n [0, 2, 3],\n [0, 1, 5],\n [0, 1],\n [0],\n [0, 2]]\n\ndef voisin_alea(voisins, s):\n return voisins[s][random.randrange(len(voisins[s]))]\n\ndef marche_alea(voisins, i, n):\n if n == 0:\n return i\n return marche_alea(voisins, voisin_alea(voisins, i), n - 1)\n\ndef simule(voisins, i, n_tests, n_pas):\n results = [0] * len(voisins)\n for _ in range(n_tests):\n j = marche_alea(voisins, i, n_pas)\n results[j] += 1\n return [total / n_tests for total in results]\n\nfrequences = simule(voisins, 3, 1000, 10)\nprint(f\"Fréquences obtenues : {frequences}\")\nprint(f\"L'ordinateur 0 a la fréquence la plus élevée avec {frequences[0] * 100:.1f}% de chances.\")\n\ndef temps_propagation(voisins, s):\n sommet = s\n pas = 0\n visites = {s}\n while len(visites) < len(voisins):\n sommet = marche_alea(voisins, sommet, 1)\n if sommet not in visites:\n visites.add(sommet)\n pas += 1\n return pas\n\nprint(f\"Temps de propagation depuis le sommet 3 : {temps_propagation(voisins, 3)} étapes\")\n","execution_count":14,"outputs":[{"output_type":"stream","text":"Fréquences obtenues : [0.336, 0.173, 0.185, 0.109, 0.066, 0.131]\nL'ordinateur 0 a la fréquence la plus élevée avec 33.6% de chances.\nTemps de propagation depuis le sommet 3 : 30 étapes\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"name":"python3","display_name":"Python 3","language":"python"}},"nbformat":4,"nbformat_minor":2}